import 自动测试
from 插件.基础函数.常用函数 import *
from 工程.九州项目.接收激励.公共函数 import *

    
def 主收通道带外互调测试初始化():
    # 射频矩阵1.连接()
#    信号源1.连接()
    信号源2.连接()
    信号源3.连接()
    频谱仪1.连接()
    产品初始化()

    信号源2.设置调制关()
    信号源3.设置调制关()
    信号源3.设置射频关()
    频谱仪1.设置频率起点(7E7-5E3)
    频谱仪1.设置频率终点(7E7+5E3)
    频谱仪1.设置分析带宽自动()
    频谱仪1.设置视频带宽(10)
    频谱仪1.设置参考幅度(0)
    频谱仪1.设置关闭噪声()
    频谱仪1.设置频标模式正常()
    频谱仪1.设置开触发()

    zbb产品.被测产品SPI.设置PTT控制指令("PTT无效")

    print("主收通道带外互调测试初始化")
    
def 主收通道带外互调(通道='主收1',频点=118.0):
    工作方式='AM'
    频率=频点*1000000
    zbb路由.测试主收通道带外互调(通道)
    zbb产品.被测产品SPI.设置通道方式频点(通道, 工作方式, 频点)

    信号源2.设置频率(频率)
    信号源2.设置幅度(-120)
    信号源2.设置射频开()
    延时(2)
    for i in range(20):
        信号源2.设置幅度(-120-i)
        延时(0.1)
        频谱仪1.设置单次触发()
        延时(0.4)
        频谱仪1.设置寻峰值()
        仪器主峰值=频谱仪1.读幅度()
        主峰值=按值转换(仪器主峰值,0.1,0)
        频谱仪1.设置寻下一个峰值()
        仪器次峰值=频谱仪1.读幅度()
        次峰值=按值转换(仪器次峰值,0.1,0)
        if 主峰值-次峰值<10:
            输出幅度=(-120-i)
            break;

    if 主峰值<-28:
        raise Exception("未找到峰值！！！")

    # zbb路由.测试主收通道带外互调2信号源(通道)
    信号源2.设置幅度(+输出幅度+80)
    信号源2.设置频率(频率+5E6)
    信号源3.设置幅度(输出幅度+80)
    信号源3.设置频率(频率+10E6)
    信号源3.设置射频开()
    延时(2)
    频谱仪1.设置寻峰值()
    仪器主峰值=频谱仪1.读幅度()
    主峰值2=按值转换(仪器主峰值,0.1,0)-4

    if 主峰值2>主峰值 or 主峰值<-28:
        互调="2X79"
    else:
        for i in range(输出幅度+80,20):
            信号源2.设置幅度(+i)
            信号源3.设置幅度(i)
            延时(0.1)
            频谱仪1.设置单次触发()
            延时(0.4)
            频谱仪1.设置寻峰值()
            仪器主峰值=频谱仪1.读幅度()
            主峰值3=按值转换(仪器主峰值,0.1,0)-4
            if 主峰值3>=主峰值:
                互调="2X80"
                break;

    print(主峰值2,主峰值,输出幅度)
    项目="主收通道带外互调('"+通道+"',"+str(频点)+")"
    判断合格保存(项目,互调,"2X80")

if __name__=='__main__':
    pass
    zbb路由.选择产品(1)
    主收通道带外互调测试初始化()
    主收通道带外互调('主收1',108)
